大家好,我是Leo
今天我來介紹的是django model field
OK~~~ Let's go now!!!
相信經過昨天建立model生成db table,記憶猶新
今天我們會從db的field開始講起,知己知彼才能運用自如
AutoField = auto incream (自動增加1,通常不需特別加入,如果沒有主鍵字段,則id自動會為主鍵)
BigAutoField = 自動增加,數字涵蓋的範圍1~9223372036854775807
IntegerField = 整數欄位
BigIntegerField = 整數,數字範圍-9223372036854775808~9223372036854775807
BinaryField = 二進制欄位
BooleanField = bool欄位
CharField = 文字欄位,需指定max_length (文字長度)
DateField = 日期格式,ex 1999-12-31,預設auto_now = False, auto_now_add = False
DateTimeField = datetime格式,預設auto_now = False, auto_now_add = False
DecimalField = 固定精度十進制,max_digits = None , decimal_places = None
DurationField = 整數,時間間隔,datetime.timedela (時間差)
EmailField = max_length=254,檢驗email是否為有效的email
FileField = 所有檔案類型,upload_to='', storage=None, max_length=100
FloatField = 浮點數欄位
GenericIPAddressField = protocol='both', unpack_ipv4=False,ipv4 ipv6位址
ImageField = upload_to=None, height_field=None, width_field=None, max_length=100,圖片
SlugField = max_length = 50 ,用於把某些字段語義化,變成短網址(slug)字符串。
class Article(models.Model):
title = models.CharField(max_length=100)
slug = models.SlugField(max_length=100)
存入models,title是 Hello World and Today is good,如果我們用文章的標題作為url進行訪問:
www.xxx.com/article/Hello%20World%20and%20Today%20is%20good
我們如果希望用橫線-代替空格,而得到:
www.xxx.com/article/Hello-World-and-Today-is-good
TextField = 一個大文本字段
URLField = 用於保存URL地址的str類型,默認最大長度200。
ForeignKey = 多對一模型關係
多對一示意圖
每個公司夥伴,工作職務是眾多職務中的一種選擇,而假設每個職務的薪資皆相同,但不同的職務薪資不相同,所以這邊用多對一做關聯
ManyToManyField = 多對多模型關係
多對多示意圖
一個使用者可能同時是A,B產品部門的員工,而一個部門通常不只一個使用者,所以對auth_user and auth_group 來說是多對多的關係
OneToOneField = 一對一模型關係,to , on_delete , parent_link = False
一對一示意圖
建立使用者想要平行擴展其他使用者欄位資訊,因預設的auth_user欄位不足以滿足我們所有填寫的資訊,則在這邊使用OneToOne擴展Field欄位
今天我們將model的Field大致都講解完,明天就要帶大家來建立平行擴展的users模型囉
我們明天見,各位掰掰~~~